<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <ul class="list">
        <li>01</li>
        <li>02</li>
        <li>03</li>
        <li>04</li>
        <li>05</li>
        <li>06</li>
        <li>07</li>
        <li>08</li>
        <li>09</li>
        <li>10</li>
    </ul>
</body>
<script>
    // 数组拓展

    // 新增构造函数Array的方法(构造函数自己的方法):
    // Array.from()   用于将两类对象转为真正的数组 (1. 伪数组 2.可遍历（iterable）的对象  字符串 Map Set)

    // var liList = document.querySelectorAll(".list li");
    // var list = Array.from(liList);
    // console.log(list);
    // console.log(Array.isArray(list));

    // var str = "hello world";
    // var list = Array.from(str);
    // console.log(list);


    // Array.of()  用于将一组值，转换为数组。

    // var list = Array.of(1, 4, 7);   //  [1,4,7]
    // console.log(list);

    // 接收一个number类型的整数 => 生成对应长度的数组, 位置会被预留出来
    // var list = new Array(10); // [,,,,,,,,,]
    // console.log(list);

    // 生成一个数组 => 包含元素10

    // var list = Array.of(10); // [10]
    // console.log(list);



    // 新增数组的方法

    // 1. 数组的遍历方法

    // ES5
    // filter => 遍历数组,每次循环时执行传入的回调函数,回调函数返回一个条件,把满足条件的元素放到新数组
    // var list = [1, 4, 7, 2, 5, 8, 3, 6, 9];
    // var arr = list.filter(function (item, index, array) {
    //     return item % 2 == 0;   //回调函数返回一个条件 = 把满足条件的元素放到新数组
    // })
    // console.log(arr);

    // ES6
    // find() => 返回满足条件的第一个元素  有=>元素 没有=> undefined
    // 用法: 遍历数组,每次循环时执行传入的回调函数,回调函数返回一个条件,返回条件的第一个元素

    // var list = [1, 4, 7, 2, 5, 8, 3, 6, 9];
    // var result = list.find(function (item, index, array) {
    //     // return item % 2 == 0;   //回调函数返回一个条件 = 返回条件的第一个元素
    //     // return item > 10;
    // })
    // console.log(result);


    // findIndex() => 返回满足条件的第一个元素的下标  有=>下标 没有=> -1
    // 用法: 遍历数组,每次循环时执行传入的回调函数,回调函数返回一个条件,返回条件的第一个元素的下标

    // var list = [1, 4, 7, 2, 5, 8, 3, 6, 9];
    // var result = list.findIndex(function (item, index, array) {
    //     // return item % 2 == 0;   //回调函数返回一个条件 = 返回条件的第一个元素
    //     // return item > 10;
    // })
    // console.log(result);


    // findLast() => 返回满足条件的最后一个元素  有=>元素 没有=> undefined
    // 用法: 遍历数组,每次循环时执行传入的回调函数,回调函数返回一个条件,返回条件的返回满足条件的最后一个元素一个元素

    // var list = [1, 4, 7, 2, 5, 8, 3, 6, 9];
    // var result = list.findLast(function (item, index, array) {
    //     return item % 2 == 0;   //回调函数返回一个条件 = 返回条件的第一个元素
    // })
    // console.log(result);


    // findIndex() => 返回满足条件的最后一个元素的下标  有=>下标 没有=> -1
    // 用法: 遍历数组,每次循环时执行传入的回调函数,回调函数返回一个条件,返回条件的最后一个元素的下标

    // var list = [1, 4, 7, 2, 5, 8, 3, 6, 9];
    // var result = list.findLastIndex(function (item, index, array) {
    //     return item % 2 == 0;   //回调函数返回一个条件 = 返回条件的最后一个元素
    // })
    // console.log(result);




    






</script>

</html>